package com.shangma.exercise;

import java.util.Scanner;

import static java.lang.Integer.parseInt;

/**
 * @classname:demo
 * @description:
 * @author: Mr.Z
 * @date: 2020/11/25 11:45
 * @version: 0.1
 * @since:1.8
 */
public class demo {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
//        demo01(input);
//        demo02(input);
//        demo03(input);
//        demo04(input);
//        demo05(input);
//        demo06(input);
//           demo07(input);
//         demo08(input);
//         demo09(input);
        demo10(input);
//        demo11(input);
//        demo12(input);
//        demo13(input);
//        demo14(input);
//        demo15(input);
//        demo16(input);

    }

    private static void demo16(Scanner input) {
//        打印出所有的 "水仙花数"
//        所谓 "水仙花数"是指一个三位数，其各位数字立方和等于该数本身。
//        例如：153是一个 "水仙花数 "，因为153=1的三次方＋5的三次方＋3的三次方。
        for (int i = 100; i <= 999; i++) {
            int gewei = i % 10;
            int shiwei = i / 10 % 10;
            int baiwei = i / 100;
            int huashu = gewei * gewei * gewei + shiwei * shiwei * shiwei + baiwei * baiwei * baiwei;
            if (huashu == i) {
                System.out.println(i + "\t");
            }

        }

    }

    private static void demo15(Scanner input) {
//        购物管理系统生日问候
//        请输入今天的日期（月/日<用两位数表示：）： 05/29
//        请输入客户生日：08/09
//        然后判断是否今天生日
//        是否继续（y/n)
//        如果是y就重复以上步骤，否则退出程序
//        字符串判断相等： "05/29".equals(birthday);
        String answer = "";
        do {
            System.out.println("请输入今天的日期");
            String date = input.next();
            System.out.println("请输入客户生日");
            String birthday = input.next();
            if (date.equals(birthday)) {
                System.out.println("生日快乐亲！");
            } else {
                System.out.println("今天不是您的生日");
            }
            System.out.println("是否继续y/n");
            answer = input.next();
        } while ("y".equals(answer));

    }

    private static void demo14(Scanner input) {
        //	计算用户输入的日期离1900年1月1日相距多少天
        System.out.println("请按照一下格式输入2020-2-12");
        String data = input.next();
        String[] split = data.split("-");
        String year = split[0];
        int years = parseInt(year);
        String dayq = split[2];
        int daya = parseInt(dayq);
        System.out.println(daya);
        int day = daya;
        for (int i = 1900; i < years; i++) {
            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                day += 366;
            } else {
                day += 365;
            }
        }

        String mouth = split[1];
        int mouths = parseInt(mouth);

        for (int i = 1; i < mouths; i++) {
            switch (i) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                    day += 31;
                    break;
                case 2:
                    if (years % 4 == 0 && years % 100 != 0 || years % 400 == 0) {
                        day += 29;
                    } else {
                        day += 28;
                    }
                    break;
                default:
                    day += 30;
                    break;
            }

        }
        System.out.println(day);
    }

    private static void demo13(Scanner input) {
        //	一张纸的厚度大约是0.08mm，对折多少次之后能达到珠穆朗玛峰的高度（8848.13米）？
        double distance = 0.08;
        int count = 0;
        while (distance <= 8848130) {
            count++;
            distance *= 2;
        }
        System.out.println(count);
    }

    private static void demo12(Scanner input) {
        //	输出乘法口诀表
        for (int i = 1; i <= 9; i++) {
            for (int i1 = 1; i1 <= i; i1++) {
                System.out.print(i + "*" + i1 + "=" + (i * i1) + "\t");
            }
            System.out.println();
        }
    }

    private static void demo11(Scanner input) {
        for (int num1 = 2, num2 = 5; num2 <= 100; num1 += 2, num2 += 5) {
            System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
        }
    }

    private static void demo10(Scanner input) {
        //打印菱形
        int n = 5;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n - i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * i - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        for (int i = 1; i < n; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            for (int j = 1; j <= 2 * (n - i) - 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }


    }


    private static void demo09(Scanner input) {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 3 - i; j++) {
                System.out.print(" ");
            }
            for (int j = 0; j < i * 2 + 1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    private static void demo08(Scanner input) {
//       	要求用户输入一个0到2之间的整数
//        如果用户输入0输出“你出的是石头”，
//        如果用户输入1就输出“你出的是剪刀”，
//        如果用户输入的是2就输出“你出的是布”，
//        然后再问是否要继续出拳，
//        如果回答“y”就重复以上过程，
//        否则结束程序
        String answer = "";
        do {
            System.out.println("请输入一个0-2之间的整数");
            int num = input.nextInt();
            if (num == 0) {
                System.out.println("你出的是石头");
            } else if (num == 1) {
                System.out.println("你出的是剪刀");
            } else if (num == 2) {
                System.out.println("你出的是布");
            }
            System.out.println("是否继续出拳y/n");
            answer = input.next();
        } while ("y".equals(answer));

    }

    private static void demo07(Scanner input) {
//        	猴子第一天摘下若干个桃子，当即吃了一半，还不过瘾，又多吃了一个。
//        以后每天早上都吃了前一天剩下的一半零一个。
//        到第十天早上想再吃时，见只剩一个桃子了。求第一天共摘了多少?
        int num = 1;
        for (int i = 1; i < 10; i++) {
            num = (num + 1) * 2;
        }
        System.out.println("第一天一共摘了" + num + "个桃子");
    }

    private static void demo06(Scanner input) {
        //会员根据积分享受不同折扣，如下表。使用多重if结构计算会员折扣
        int vipjifen = input.nextInt();
        if (vipjifen > 2000) {
            System.out.println("您享受的是九折优惠");
        } else if (2000 <= vipjifen && vipjifen < 4000) {
            System.out.println("您享受的是八折优惠");
        } else if (vipjifen >= 4000 && vipjifen < 8000) {
            System.out.println("您享受的是七折优惠");
        } else if (vipjifen >= 8000) {
            System.out.println("您享受的是六折优惠");
        }

    }

    private static void demo05(Scanner input) {
// 商场实行新的抽奖规则：会员号的百位数字等于产生的随机数字即为幸运会员。实现：
//1、从键盘接收4位数会员号
//	2、生成随机数
//int random = (int) (Math.random() * 10);
//	3、算出会员号中在百位的数字号码
//	int baiwei = custNo / 100 % 10;
        System.out.println("请输入4位会员账号");
        int custNo = input.nextInt();
        int random = (int) (Math.random() * 10);
        int baiwei = custNo / 100 % 10;
        if (random == baiwei) {
            System.out.println("恭喜您中奖了");
        } else {
            System.out.println("很遗憾没有中奖");
        }

    }

    private static void demo04(Scanner input) {
        //需求说明：录入会员信息（会员号、会员生日、会员积分）并显示录入信息
        //升级功能：
        //判断录入是否合法（会员号必为4位整数），
        //录入合法，显示录入的信息；
        //不合法，显示“录入失败”\
        System.out.println("请输入会员号");
        String vipInfo = input.next();
        if (!(vipInfo.length() == 4)) {
            System.out.println("录入失败");
            return;
        }
        System.out.println("请输入会员生日");
        String vipBir = input.next();
        System.out.println("请输入会员积分");
        int vipsorce = input.nextInt();
        System.out.println("会员号\t会员生日\t会员积分");
        System.out.println(vipInfo + "\t" + vipBir + "\t" + vipsorce);

    }

    private static void demo03(Scanner input) {
        //求1到n之间所有能被3整除的整数个数，以及整除的整数和
        System.out.println("请输入做一个整数n");
        int num = input.nextInt();
        int chu = 0;
        int sum = 0;
        for (int i = 0; i < num; i++) {
            if (i / 3 == 0) {
                chu++;
                sum += i;
            }
        }
        System.out.println("所有能被3整除的整数个数为：" + chu);
        System.out.println("整除的整数和为：" + sum);


    }

    private static void demo02(Scanner input) {
        //请使用条件结构/三元运算符求3个数的最值
        int a = 10, b = 20, c = 30;
        int max = ((a > b) ? a : b) > c ? ((a > b) ? a : b) : c;
        int min = ((a < b) ? a : b) < c ? ((a < b) ? a : b) : c;
        System.out.println("最大值是:" + max);
        System.out.println("最小值是:" + min);
    }

    public static void demo01(Scanner input) {
        //要求用户输入两个数a、b，
        // 如果a能被b整除或a加b大于1000，则输出a，否则输出b

        int a = input.nextInt();
        int b = input.nextInt();
        if (a % b != 0 && (a + b) > 1000) {
            System.out.println(a);
        } else {
            System.out.println(b);
        }
    }

}
